﻿<!DOCTYPE html>
<html xmlns:v-bind="http://www.w3.org/1999/xhtml">

<head>
    <meta charset="utf-8"/>
    <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"/>
    <title>乐优商城--商品搜索结果页</title>
    <link rel="icon" href="assets/img/favicon.ico">
    <link href='./css/material.css' rel="stylesheet">
    <link href="./css/vuetify.min.css" rel="stylesheet">
    <script src="./js/vue/vue.js"></script>
    <script src="./js/vue/vuetify.js"></script>
    <script src="./js/axios.min.js"></script>
    <script src="./js/common.js"></script>
    <link rel="stylesheet" type="text/css" href="css/webbase.css"/>
    <link rel="stylesheet" type="text/css" href="css/pages-list.css"/>
    <link rel="stylesheet" type="text/css" href="css/widget-cartPanelView.css"/>
    <style type="text/css">
* {
    box-sizing: unset;
}
        .btn-arrow, .btn-arrow:visited, .btn-arrow:link, .btn-arrow:active {
            width: 46px;
            height: 23px;
            border: 1px solid #DDD;
            background: #FFF;
            line-height: 23px;
            font-family: "\5b8b\4f53";
            text-align: center;
            font-size: 16px;
            color: #AAA;
            text-decoration: none;
            out-line: none
        }

        .btn-arrow:hover {
            background-color: #1299ec;
            color: whitesmoke;
        }

        .top-pagination {
            display: block;
            padding: 3px 15px;
            font-size: 11px;
            font-weight: 700;
            line-height: 18px;
            color: #999;
            text-shadow: 0 1px 0 rgba(255, 255, 255, .5);
            text-transform: uppercase;
            float: right;
            margin-top: 6px
        }

        .top-pagination span {
            margin-right: 10px;
        }
        .logo-list li{
            padding:8px;
        }
       .logo-list li:hover{
            background-color: #f3f3f3;
        }
        .type-list a:hover{
            color: #1299ec;
        }
        .skus {
            list-style: none;
        }
        .skus li{
            list-style: none;
            display: inline-block;
            float: left;
            margin-left: 2px;
            border: 2px solid #f3f3f3;
        }
        .skus li.selected{
            border: 2px solid #dd1144;
        }
        .skus img{
            width: 25px;
            height: 25px;
        }
    </style>
    <script type="text/javascript" src="plugins/jquery/jquery.min.js"></script>
</head>

<body >

<div id="searchApp">
<div id="nav-bottom">
    <ly-top/>
</div>


<!--list-content-->
<div class="main" >
    <div class="py-container">

        <div class="bread">
            <!--面包屑-->
            <ul class="fl sui-breadcrumb">
                <li><span>全部结果:</span></li>
                <li ><a href="#">手机</a></li>
                <li ><span>手机通讯</span></li>
            </ul>
            <!--已选择过滤项-->
            <ul class="tags-choose">
                <li class="tag">
                    品牌:<span style="color: red">apple</span>
                    <i class="sui-icon icon-tb-close"></i>
                </li>
                <li class="tag">
                    内存:<span style="color: red">4G</span>
                    <i class="sui-icon icon-tb-close"></i>
                </li>
            </ul>
            <div class="clearfix"></div>
        </div>
        <!--selector-->
        <div class="clearfix selector">
            <div class="type-wrap" v-for="(v , k, index) in newFiltersParams" :key="index" v-if="k !== '品牌'" v-show="index<6 || showMore">
                <div class="fl key">{{k}}</div>
                <div class="fl value">
                    <ul class="type-list">
                        <li v-for="(v1, i1)  in v">
                            <!-- 如果v1.name  没有值，就显示 v1 -->
                            <a @click.prevent="clickFilterParams(k, (v1.id ||v1) )">{{v1.name || v1 }}</a>
                        </li>

                    </ul>
                </div>
                <div class="fl ext"></div>
            </div>
            <div class="type-wrap logo" v-else>
                <div class="fl key brand">{{k}}</div>
                <div class="value logos">
                    <ul class="logo-list">
                        <li v-for="(v2, i2) in v" v-if="v2.image">
                            <img :src="v2.image" @click.prevent="clickFilterParams(k, v2.id)"/>
                        </li>
                        <li style="text-align: center" v-else>
                            <a  @click.prevent="clickFilterParams(k, v2.id)" style="line-height: 30px; font-size: 12px" href="#">{{v2.name}}</a>
                        </li>
                    </ul>
                </div>
                <div class="fl ext">
                    <a href="javascript:void(0);" class="sui-btn">多选</a>
                </div>
            </div>
            <div class="type-wrap" style="text-align: center">
                <v-btn small flat v-show="!showMore" @click="showMore = true">
                    更多<v-icon>arrow_drop_down</v-icon>
                </v-btn>
                <v-btn small="" flat v-show="showMore" @click="showMore = false">
                    收起<v-icon>arrow_drop_up</v-icon>
                </v-btn>
            </div>
        </div>
        <!--details-->
        <div class="details">
            <div class="sui-navbar">
                <div class="navbar-inner filter">
                    <ul class="sui-nav">
                        <li class="active">
                            <a href="#">综合</a>
                        </li>
                        <li>
                            <a href="#">销量</a>
                        </li>
                        <li>
                            <a href="#">新品</a>
                        </li>
                        <li>
                            <a href="#">评价</a>
                        </li>
                        <li>
                            <a href="#">价格</a>
                        </li>
                    </ul>
                    <div class="top-pagination">
                        <span>共 <i style="color: #222;">{{total}}+</i> 商品</span>
                        <span><i style="color: red;">{{queryGoodsParam.page}}</i>/{{totalPage}}</span>
                        <!-- prevent  ： 禁止事件的默认行为 -->
                        <a class="btn-arrow" href="#" style="display: inline-block" @click.prevent="prePage">&lt;</a>
                        <a class="btn-arrow" href="#" style="display: inline-block" @click.prevent="nextPage">&gt;</a>
                    </div>
                </div>
            </div>
            <div class="goods-list">
                <ul class="yui3-g">

                    <li class="yui3-u-1-5" v-for="(goods, index) in goodsList" :key="index">
                        <div class="list-wrap">
                            <div class="p-img">
                                <a :href="'/item/' + goods.id +'.html'" target="_blank">
                                    <img :src="goods.selectedSku.image" height="200"/>
                                </a>
                                <ul class="skus">
                                    <li v-bind:class="{selected: sku.id === goods.selectedSku.id}"
                                        v-for="(sku,skuIndex) in goods.skus"
                                        :key="sku.id"
                                        @mouseover="goods.selectedSku = sku"
                                    >
                                        <img :src="sku.image">
                                    </li>
                                </ul>
                            </div>
                            <div class="clearfix"></div>
                            <div class="price">
                                <strong>
                                    <em>¥</em>
                                    <i>{{ly.formatPrice(goods.selectedSku.price)}}</i>
                                </strong>
                            </div>
                            <div class="attr" style="overflow: hidden">
                                <em v-html="goods.spuName"></em>
                            </div>
                            <div class="cu" style="overflow: hidden">
                                <em><span>促</span><em v-html="goods.subTitle"></em></em>
                            </div>
                            <div class="commit">
                                <i class="command">已有2000人评价</i>
                            </div>
                            <div class="operate">
                                <a href="success-cart.html" target="_blank" class="sui-btn btn-bordered btn-danger">加入购物车</a>
                                <a href="javascript:void(0);" class="sui-btn btn-bordered">对比</a>
                                <a href="javascript:void(0);" class="sui-btn btn-bordered">关注</a>
                            </div>
                        </div>
                    </li>

                </ul>
            </div>
            <div class="fr">
                <div class="sui-pagination pagination-large">
                    <ul>
                        <li class="prev disabled">
                            <a href="#">«上一页</a>
                        </li>
                        <li class="active">
                            <a href="#">1</a>
                        </li>
                        <li>
                            <a href="#">2</a>
                        </li>
                        <li>
                            <a href="#">3</a>
                        </li>
                        <li>
                            <a href="#">4</a>
                        </li>
                        <li>
                            <a href="#">5</a>
                        </li>
                        <li class="dotted"><span>...</span></li>
                        <li class="next">
                            <a href="#">下一页»</a>
                        </li>
                    </ul>
                    <div><span>共10页&nbsp;</span><span>
      到第
      <input type="text" class="page-num">
      页 <button class="page-confirm" onclick="alert(1)">确定</button></span></div>
                </div>
            </div>
        </div>
        <!--hotsale-->
        <div class="clearfix hot-sale">
            <h4 class="title">热卖商品</h4>
            <div class="hot-list">
                <ul class="yui3-g">
                    <li class="yui3-u-1-4">
                        <div class="list-wrap">
                            <div class="p-img">
                                <img src="img/like_01.png"/>
                            </div>
                            <div class="attr">
                                <em>Apple苹果iPhone 6s (A1699)</em>
                            </div>
                            <div class="price">
                                <strong>
                                    <em>¥</em>
                                    <i>4088.00</i>
                                </strong>
                            </div>
                            <div class="commit">
                                <i class="command">已有700人评价</i>
                            </div>
                        </div>
                    </li>
                    <li class="yui3-u-1-4">
                        <div class="list-wrap">
                            <div class="p-img">
                                <img src="img/like_03.png"/>
                            </div>
                            <div class="attr">
                                <em>金属A面，360°翻转，APP下单省300！</em>
                            </div>
                            <div class="price">
                                <strong>
                                    <em>¥</em>
                                    <i>4088.00</i>
                                </strong>
                            </div>
                            <div class="commit">
                                <i class="command">已有700人评价</i>
                            </div>
                        </div>
                    </li>
                    <li class="yui3-u-1-4">
                        <div class="list-wrap">
                            <div class="p-img">
                                <img src="img/like_04.png"/>
                            </div>
                            <div class="attr">
                                <em>256SSD商务大咖，完爆职场，APP下单立减200</em>
                            </div>
                            <div class="price">
                                <strong>
                                    <em>¥</em>
                                    <i>4068.00</i>
                                </strong>
                            </div>
                            <div class="commit">
                                <i class="command">已有20人评价</i>
                            </div>
                        </div>
                    </li>
                    <li class="yui3-u-1-4">
                        <div class="list-wrap">
                            <div class="p-img">
                                <img src="img/like_02.png"/>
                            </div>
                            <div class="attr">
                                <em>Apple苹果iPhone 6s (A1699)</em>
                            </div>
                            <div class="price">
                                <strong>
                                    <em>¥</em>
                                    <i>4088.00</i>
                                </strong>
                            </div>
                            <div class="commit">
                                <i class="command">已有700人评价</i>
                            </div>
                        </div>
                    </li>
                </ul>
            </div>
        </div>
    </div>
</div>

</div>

<script type="text/javascript">
    var vm = new Vue({
        el: "#searchApp",
        data: {
            ly,
            // 定义搜索条件的对象
            queryGoodsParam: {
                key: "", // 用户输入的查询条件
                page: 1,  //当前页
                filters: {} // 过滤项： 分类、品牌、规格参数
            },
            // 定义接收后台返回的数据
            total: 0,      //总记录数
            totalPage: 0, // 总页数
            goodsList: [], // 返回的商品
            filterParams: {}, // 接收过滤参数
            showMore: false // true: 显示收起  ： false：显示更多
        },
        // 为了有vue的代码提醒，我们安装一下vue，安装vue只是为了代码提醒
        created(){
            // 1、接收url路径上的查询条件
            let key = ly.getUrlParam("key");
            // 1.1 判空 ： undefined
            if(!key || key == '' || key == null){
                alert("请输入搜索条件，不然滚蛋！");
                return; // 不往下执行代码
            }
            // 2、给data的queryGoodsParam赋值
            this.queryGoodsParam.key = key;

            // 4、给当前页赋值
            let page = ly.getUrlParam("page")
            // 如果从url没有获取到page参数，我们给一个默认值： 1
            this.queryGoodsParam.page = page || 1;

            // 6、接收过滤项参数
            let searchStr = location.search
            // 把这个url参数转成对象
            let searchJson = ly.parse(searchStr.substr(1));
            // 把searchJson给查询条件
            this.queryGoodsParam = searchJson
            // 判断filters
            if(!this.queryGoodsParam.filters){
                this.queryGoodsParam.filters = {}
            }

            // 3、调用methods中的查询方法
            this.queryGoods()
            // 5、加载过滤项参数
            this.queryFilterParams()
        },
        computed: {
            // 计算属性： 计算属性名称 与  data中属性的名称作用一样的，也可以在插入值表达式 去引用
            // 计算属性： 必须还要有一个 return
            newFiltersParams(){
                const filterMap = {};
                // ============================
                // 把filterParmas中 集合大于一的放入新的map中
                for (let key in this.filterParams){
                    if(this.filterParams[key].length > 1){
                        filterMap[key] = this.filterParams[key]
                    }
                }
                // ============================
                return filterMap;
            }
        },
        watch: {
            "queryGoodsParam.page":{
                handler(){
                    //console.log(this.queryGoodsParam.page);
                    // 把对象转成url的参数类型
                    let params = ly.stringify(this.queryGoodsParam);
                    // 去掉最后一个 & 符号
                    if(params.endsWith("&")){
                        params = params.substring(0,params.length-1);
                    }
                    // 把page当前页页码放入地址栏，页面不刷新
                    history.replaceState(null, null, location.origin + location.pathname+"?" + params)
                    // 改变了当前页，调用分页查询： 页面会刷新
                    this.queryGoods();
                }
            }
        },
        methods: {
            queryGoods(){
                // 向后台发起请求
                ly.http.post("/search/page", this.queryGoodsParam)
                    .then(res=>{
                        console.log(res)
                        this.total = res.data.total;
                        this.totalPage = res.data.totalPage;
                        // 把返回的结果的skus转成对象
                        res.data.items.forEach(item => {
                            // 把字符串转成对象
                            item.skus = JSON.parse(item.skus)
                            // 我们给返回的列表动态加入一个已经选择的sku
                            item.selectedSku = item.skus[0]
                        })
                        this.goodsList = res.data.items;
                    })
                    .catch(err=>{
                        console.log(err)
                    })
            },
            prePage(){
                // 上一页：  当前页 -1
                if(this.queryGoodsParam.page > 1){
                    this.queryGoodsParam.page--
                }
            },
            nextPage(){
               // 下一页：  当前页 + 1
                if(this.queryGoodsParam.page < this.totalPage){
                    this.queryGoodsParam.page++
                }
            },
            // 加载过滤项参数： 分类、品牌、规格参数
            queryFilterParams(){
                ly.http.post("/search/filter", this.queryGoodsParam)
                .then(res => {
                    console.log(res)
                    this.filterParams = res.data
                })
                .catch(err => {
                    console.log(err)
                })
            },
            // 过滤项的点击事件
            clickFilterParams(key, value){
                // 给查询条件赋值
                this.queryGoodsParam.filters[key] = value
                // 把查询条件放入浏览器的URL中
                // 把对象转成url的参数类型
                let params = ly.stringify(this.queryGoodsParam);
                // 把page当前页页码放入地址栏，页面不刷新
                history.replaceState(null, null, location.origin + location.pathname+"?" + params)
                // 发起请求
                this.queryGoods();
                // 发起请求查询规格参数
                this.queryFilterParams();
            }
        },
        components:{
            lyTop: () => import("./js/pages/top.js")
        }
    });
</script>
<!-- 底部栏位 -->
<!--页面底部，由js动态加载-->
<div class="clearfix footer"></div>
<script type="text/javascript">$(".footer").load("foot.html");</script>
<!--页面底部END-->

</body >
<!--购物车单元格 模板-->
<script type="text/template" id="tbar-cart-item-template">
    <div class="tbar-cart-item">
        <div class="jtc-item-promo">
            <em class="promo-tag promo-mz">满赠<i class="arrow"></i></em>
            <div class="promo-text">已购满600元，您可领赠品</div>
        </div>
        <div class="jtc-item-goods">
            <span class="p-img"><a href="#" target="_blank"><img src="{2}" alt="{1}" height="50" width="50"/></a></span>
            <div class="p-name">
                <a href="#">{1}</a>
            </div>
            <div class="p-price"><strong>¥{3}</strong>×{4}</div>
            <a href="#none" class="p-del J-del">删除</a>
        </div>
    </div>
</script>
<!--侧栏面板结束-->
<script type="text/javascript" src="js/plugins/jquery/jquery.min.js"></script>
<script type="text/javascript">
    $(function () {
        $("#service").hover(function () {
            $(".service").show();
        }, function () {
            $(".service").hide();
        });
        $("#shopcar").hover(function () {
            $("#shopcarlist").show();
        }, function () {
            $("#shopcarlist").hide();
        });

    })
</script>
<script type="text/javascript" src="js/model/cartModel.js"></script>
<script type="text/javascript" src="js/czFunction.js"></script>
<script type="text/javascript" src="js/plugins/jquery.easing/jquery.easing.min.js"></script>
<script type="text/javascript" src="js/plugins/sui/sui.min.js"></script>
<script type="text/javascript" src="js/widget/cartPanelView.js"></script>


</html>